$(document).ready(function(){
    initMask();
    initEnviar();
    initGrid();
    iniBusca();
    initControlaAtivi();
    cancelaConsulta();
    initTpUser();
    initPlanoSaude();
    removeUsuario();
});

function initTpUser(){
    $("#tipo_pessoa").live("change",function(){
        if($(this).val()==1){
            $("#funcionarios").addClass("funcionarios");
        }else if($(this).val()==2){
            $("#funcionarios").removeClass("funcionarios");
        }
    });
}

function initControlaAtivi(){
    $(".checkAtiv").live("change",function(){
        var checkbox =$(this);
        if(checkbox.is(':checked')){
            checkbox.closest("tr").find('.valores').attr("disabled",false);
            checkbox.closest("tr").find('.codigo_plano').attr("disabled",false);
        }else{
            checkbox.closest("tr").find('.valores').attr("disabled",true);
            checkbox.closest("tr").find('.codigo_plano').attr("disabled",true);
        }
    });
}

function initMask(){
    $("input[alt]").setMask();
}

function initGrid(){
    $("#flex1").flexigrid({
        url: '/usuario/consulta/lista',
        dataType: 'xml',
        colModel : [
        {
            display: 'Id', 
            name : 'p.codigo', 
            width : 50, 
            sortable : true, 
            align: 'center'
        },
        {
            display: 'Nome', 
            name : 'p.nome', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'CPF', 
            name : 'p.cpf', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'Cidade', 
            name : 'p.cidade', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },

        {
            display: 'Tipo Usúario', 
            name : 'tp.codigo', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'Username', 
            name : 'f.username', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },


        {
            display: 'Data Nascimento', 
            name : 'p.dt_nascimento', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },

        {
            display: 'Data Cadastro', 
            name : 'p.dt_cadastro', 
            width : 180, 
            sortable : true, 
            align: 'center'
        }
        ],
        buttons : [
        {
            name: 'Add', 
            bclass: 'add', 
            onpress : adicionar
        },

        {
            name: 'Edit', 
            bclass: 'add', 
            onpress : edita
        },
        {
            separator: true
        }
        ],
        searchitems : [
        {
            display: 'Id', 
            name : 'codigo'
        },

        {
            display: 'Descrição', 
            name : 'descricao', 
            isdefault: true
        }
        ],
        sortname: "codigo",
        sortorder: "asc",
        usepager: true,
        title: 'Usúarios',
        useRp: true,
        rp: 15,
        showTableToggleBtn: true,
        width: 1200,
        height: 200
    }); 
}

function initEnviar(){
    $("#btnEnviar").live("click",function(event){
        event.preventDefault();
        removeMsgErro('initEnviar');
        
        if(validaForm()){
            $.ajax({
                url: '/usuario/insere/valida',
                data: dataSend(),
                dataType: 'Json',
                type: 'POST',
                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
                beforeSend: function(){
                },
                success: function(data){
                    if(!isEmpty(data.erros)){
                        for (i = 0; i < data.erros.length; i++) {
                            exibeMsgErro(data.erros[i], 'initEnviar');
                        }
                    }else{
                        $("#buscaUsers").submit();
                    }
                },
                error: function(){
                }
            });
        }
    });
}

function dataSend(){
    return $("#buscaUsers input,#buscaUsers select").serialize();
}

function removeUsuario(){
    $('#btnExcluir').live('click',function(){
        var answer = confirm("Tem certeza que deseja excluir?");
        if (answer){
            removeMsgErro('exclui1');
            var busca = $("#codigo").val();

            if(isEmpty(busca)){
                exibeMsgErro('É necessário selecionar um registro para ser removido.', 'exclui1');
            }else{
                window.location = '/usuario/insere/delete?codigo=' + busca;
            }
        }
    });
}

function edita(){
    removeMsgErro('edita1');
    var busca = $(".trSelected td[abbr='p.codigo'] div");

    if(busca.length == 0){
        exibeMsgErro('É necessário selecionar um registro para editar.', 'edita1');
    }else if(busca.length > 1){
        exibeMsgErro('É necessário somente um registro para editar.', 'edita1');
    }else if(isNaN(busca.html() * 1)){
        exibeMsgErro('Não é possível editar esse registro.', 'edita1');
    }else{
        window.location = '/usuario/edita?codigo=' + busca.html();
    }
}


function validaForm(){
    removeMsgErro(new Array("validaForm1","validaForm2","validaForm3","validaForm4","validaForm5","validaForm6","validaForm7",
        "validaForm8","validaForm9","validaForm10","validaForm11"));
    var erros = new Array();
    if(isEmpty($("#nome").val())){
        erros['validaForm1'] = "É necessário preencher o campo 'Nome do Usuário'";
    }
    
    if(isEmpty($("#cpf").val())){
        erros['validaForm11'] = "É necessário preencher o campo 'CPF'";
    }else if( !validaCpf($("#cpf").val()) ){
        erros['validaForm11'] = "O campo 'CPF' é inválido";
    }
    
    if(isEmpty($("#endereco").val())){
        erros['validaForm2'] = "É necessário preencher o campo 'Rua/Bairro'";
    }
    
    if(isEmpty($("#cidade").val())){
        erros['validaForm3'] = "É necessário preencher o campo 'Cidade'";
    }
    
    if(isEmpty($("#cep").val())){
        erros['validaForm4'] = "É necessário preencher o campo 'CEP'";
    }else if(!validaCEP($("#cep").val())){
        erros['validaForm4'] = "O 'CEP'não é válido.";
    }
    
    if(isEmpty($("#dt_nascimento").val())){
        erros['validaForm5'] = "É necessário preencher o campo 'Data de Nascimento'";
    }else if(!dateIsValid($("#dt_nascimento").val())){
        erros['validaForm5'] = "'Data de Nascimento' não é uma data válida.";
    }
    
    if($("#tipo_pessoa").val() == 2){
        if(isEmpty($("#salario").val())){
            erros['validaForm6'] = "É necessário preencher o campo 'Salário'";
        }
        
        if(isEmpty($("#dt_contratacao").val())){
            erros['validaForm7'] = "É necessário preencher o campo 'Data de Contratação'";
        }else if(!dateIsValid($("#dt_contratacao").val())){
            erros['validaForm8'] = "'Data de Contratação' não é uma data válida.";
        }
        
        if(isEmpty($("#username").val())){
            erros['validaForm9'] = "É necessário preencher o campo 'Username'";
        }
        
        if(isEmpty($("#codigo").val())&& isEmpty($("#password").val())){
            erros['validaForm10'] = "É necessário preencher o campo 'Password'";
        }
        
        if(isEmpty($("#perfil_acesso").val())){
            erros['validaForm11'] = "É necessário escolher um 'Perfil de Acesso'";
        }
    }
    
    if(size(erros) > 0){
        exibeMsgErro(erros);
        return false;
    }
    
    return true;
}

function adicionar(){
    window.location = '/usuario/insere';
}

function confereCpf(idGrid){
    if(!isEmpty($("#cpf").val())){
        if(validaCpf($("#cpf").val())){
            removeMsgErro('initEnviar');
            $.ajax({
                url: '/usuario/consulta/valida',
                data: $("#cpf").serialize(),
                dataType: 'Json',
                type: 'POST',
                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
                beforeSend: function(){
                },
                success: function(data){
                    if(!isEmpty(data.erros)){
                        for (i = 0; i < data.erros.length; i++) {
                            exibeMsgErro(data.erros[i], 'initEnviar');
                        }
                    }else{
                        atualizaGrid(idGrid);
                    }
                },
                error: function(){
                }
            });
        }else{
            var erros1 = new Array();
            erros1['iniBUsca'] = 'CPF não é válido.'
            exibeMsgErro(erros1, null);
        }
    }else{
       atualizaGrid(idGrid);
}
}

function atualizaGrid(idGrid){
    var dt = $('#buscaUsers input,#buscaUsers select').serializeArray();
    $("#"+idGrid).flexOptions({
        params: dt
    }).flexReload();
}

function iniBusca(){
    $('#btnConsulta').live('click',function(event){
        event.preventDefault();
        var grid= $('#flex1');
        if(grid.length == 0){
            grid = $('#flexLight1');
        }
        confereCpf(grid.attr('id'));
    });
}

function initPlanoSaude(){
    $("#plano_saude").pickList();
}


function initLightGrid(){
    $("#flexLight1").flexigrid({
        url: '/usuario/consulta/lista',
        dataType: 'xml',
        colModel : [
        {
            display: 'Id', 
            name : 'p.codigo', 
            width : 30, 
            sortable : true, 
            align: 'center'
        },
        {
            display: 'Nome', 
            name : 'p.nome', 
            width : 150, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'CPF', 
            name : 'p.cpf', 
            width : 100, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'Cidade', 
            name : 'p.cidade', 
            width : 95, 
            sortable : true, 
            align: 'left'
        },
        {
            display: 'Tipo Usúario', 
            name : 'tp.codigo', 
            width : 100, 
            sortable : true, 
            align: 'left'
        }
        ],
        buttons : [
        {
            name: 'Selecionar', 
            bclass: 'add', 
            onpress : selecionarCliente
        }
        ],
        searchitems : [
        {
            display: 'Id', 
            name : 'codigo'
        },

        {
            display: 'Descrição', 
            name : 'descricao', 
            isdefault: true
        }
        ],
        sortname: "codigo",
        sortorder: "asc",
        usepager: true,
        title: 'Usúarios',
        useRp: true,
        rp: 15,
        showTableToggleBtn: true,
        width: 550,
        height: 200
    }); 
}
function selecionarCliente(){
    if($('#flexLight1 tr.trSelected').length ==1 ){
        var valor = $('#flexLight1 tr.trSelected td[abbr="p.codigo"] div').html();
        var nome = $('#flexLight1 tr.trSelected td[abbr="p.nome"] div').html()
        if(!isEmpty(valor) && !isEmpty(nome)){
            $('#atendimento_conteudo_form #nome_clie').val(nome);
            $('#atendimento_conteudo_form input#paciente').val(valor);
            atendimento.atualizaPlanosSaude(valor);
        }

        $('div.#edicao,,#btnCancelaConsulta').css('display','inline');
        $('div.#searchPaciente').css('display','none');

        $('#flexLight1 tr.trSelected').removeClass('trSelected');
        
    }else if($('#flexLight1 tr.trSelected').length == 0){
        
    }else if($('#flexLight1 tr.trSelected').length > 1){
        
    }
}

function cancelaConsulta(){
    $('#btnCancelaConsulta').live('click',function(){
        $('div.#edicao').css('display','inline');
        $('div.#searchPaciente').css('display','none');

        $('#flexLight1 tr.trSelected').removeClass('trSelected');
    });
}